package com.wkq.util

/**
 *
 *@Author: wkq
 *
 *@Time: 2025/7/11 12:13
 *
 *@Desc:  加密方法：将字符串与XOR密钥进行异或操作，返回加密后的字节数组
 */
object XOREncryptor {
    /**
    * 字符串转成集合
     */
    fun encrypt(originalString: String, xorKey: ByteArray): ByteArray {
        return originalString.mapIndexed { index, c ->
            (c.code xor xorKey[index % xorKey.size].toInt()).toByte()
        }.toByteArray()
    }

    // 解密方法：将加密后的字节数组与XOR密钥进行异或操作，返回原始字符串
    fun decrypt(encryptedBytes: ByteArray, xorKey: ByteArray): String {
        return encryptedBytes.mapIndexed { index, byte ->
            (byte.toInt() xor xorKey[index % xorKey.size].toInt()).toChar()
        }.joinToString("")
    }


}